'''


一、建立以下数据表并填充数据
产品表：products
列名：主键id  编号num  名称name  单价price  折扣discount

订单表：orders
列名：主键id  编号num  货品数量count  金额amount


二、实现以下菜单并实现业务:
1.查看所有商品信息；
2.查找商品（用户输入商品名称，查看价格和折扣）；
3.添加商品（id需要程序生成）；
4.修改商品价格和折扣（根据编号，设置折扣为0-1之间）；
5.删除商品（根据编号）；
6.查看所有订单；
7.删除订单（根据编号）；
8.订单统计（总销量，总销售额）；
9.商品结算（添加订单）。
'''
import orm


def show_products():
    sql = """
    select num,name,price,discount from products
    """
    data = orm.read_data(sql)
    if data != ():
        print(f'---编码----名称----价格----折扣')
        for product in data:
            print(f'{product[0]}\t\t{product[1]}\t\t{product[2]}\t{product[3]}')


def get_product():  # 查找商品（用户输入商品名称，查看价格和折扣）；
    name = input('请输入商品名称：')
    sql = f"""
    select name,price,discount from products where name = '{name}'
 """
    data = orm.read_data(sql)
    if data != ():
        print(f'---编码----名称----价格----折扣')
        for product in data:
            print(f'{product[0]}\t\t{product[1]}\t\t{product[2]}\t{product[3]}')
    else:
        print('商品不存在，请重新输入')


def add_product():  # 添加商品（id需要程序生成）
    num = int(input('请输入编号：'))
    name = input('请输入名称：')
    price = float(input('请输入单价：'))
    discount = float(input('请输入折扣：'))
    sql = f"""
INSERT INTO products VALUES (null,{num} , '{name}', {price},{discount})"""
    rows = orm.write_data(sql)
    if rows > 0:
        print(f'添加{name}商品成功')
    else:
        print('添加商品失败')


def mod_product():  # 修改商品价格和折扣（根据编号，设置折扣为0-1之间）
    num = int(input('请输入编号：'))
    price = float(input('请输入单价：'))
    discount = float(input('请输入折扣：'))
    sql = f"""
update products set price = '{price}',discount='{discount}' where num ='{num}'"""
    rows = orm.write_data(sql)
    if rows > 0:
        print(f'商品价格已修改为：{price},折扣已修改为：{discount}')
    else:
        print('修改失败')


def del_product():  # 删除商品（根据编号）
    num = int(input('请输入编号：'))
    sql = f"""
delete from products where num = '{num}'"""
    rows = orm.write_data(sql)
    if rows > 0:
        print(f'编号为{num}的商品已删除')
    else:
        print('删除失败')


def show_orders():  # 查看所有订单
    sql = "select num,count,amount from orders"
    data = orm.read_data(sql)
    if data != ():
        print(f'编号----货品数量------金额')
        for order in data:
            print(f'{order[0]}\t\t{order[1]}\t\t{order[2]}')


def del_order():  # 删除订单（根据编号
    num = int(input('请输入编号：'))
    sql = f"delete from orders where num = '{num}'"
    rows = orm.write_data(sql)
    if rows > 0:
        print(f'编号为{num}的订单已删除')
    else:
        print('删除失败')


def count_orders():  # 订单统计（总销量，总销售额）
    sql = "SELECT sum(count),sum(amount) from orders"
    data = orm.read_data(sql)
    if data != ():
        print(f'总销量：{data[0][0]},总销售额：{data[0][1]}')
    else:
        print('空空如也，快去下单！')


def add_order():  # 商品结算（添加订单）
    num = int(input('请输入订单编号：'))
    count = float(input('请输入订单货品数量：'))
    amount = float(input('请输入订单金额：'))
    sql = f"INSERT into orders VALUES(null,{num},{count},{amount})"
    rows = orm.write_data(sql)
    if rows > 0:
        print(f'订单编号为：{num}添加成功')
    else:
        print('结算失败')


# if __name__ == '__main__':
    # get_conn()      # 登录测试
    # show_products()   # 显示商品列表
    # add_product()       # 添加商品
    # mod_product()       # 修改价格折扣
    # del_product()       # 删除商品
    # show_orders()       # 显示所有订单
    # del_order()     # 删除订单
    # count_orders()      # 订单统计
    # add_order()         # 订单结算

# 产品表：products
# 列名：主键id  编号num  名称name  单价price  折扣discount
#
# 订单表：orders
# 列名：主键id  编号num  货品数量count  金额amount